package com.hexinfo.dmpro.sparing.model;

import cn.hutool.core.io.file.FileAppender;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.LocalDate;
import org.springframework.validation.annotation.Validated;

/**
 * 热备表级日志分析表
 *
 * @author zax
 * @date 2023-11-18 14:33:21
 */
@Data
@Validated
@TableName("TD_HOT_STANDBY_LOG_TABLE")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "热备表级日志分析表")
public class HotStandbyLogTable extends Model<HotStandbyLogTable> {
private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(type= IdType.ASSIGN_UUID)
    @ApiModelProperty(value="id")
    private String id;
    /**
     * 源级表id
     */
    @ApiModelProperty(value="源级表id")
    private String sourceId;
    /**
     * 库.表名
     */
    @ApiModelProperty(value="库.表名")
    private String dbTbName;
    /**
     * 增量、全量
     */
    @ApiModelProperty(value="增量、全量")
    private String syncWay;
    /**
     * 初始HDFS数量/过滤HDFS数量
     */
    @ApiModelProperty(value="初始HDFS数量/过滤HDFS数量")
    private String tableHdfsNumber;
    /**
     * 状态(同步失败、刷新失败、删除失败、比对失败、成功、进行中)
     */
    @ApiModelProperty(value="状态(同步失败、刷新失败、删除失败、比对失败、成功、进行中)")
    private String taskState;
    /**
     * 热备用时
     */
    @ApiModelProperty(value="热备用时")
    private String hotStandbyTime;
    /**
     * 用时详细
     */
    @ApiModelProperty(value="用时详细")
    private String hotStandbyTimeData;
    /**
     * 日志路径
     */
    @ApiModelProperty(value="日志路径")
    private String logPath;
    /**
     * 创建人
     */
    @ApiModelProperty(value="创建人")
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private Date createTime;
    /**
     * 更新人
     */
    @ApiModelProperty(value="更新人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String lastUpdateBy;
    /**
     * 更新时间
     */
    @ApiModelProperty(value="更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private Date lastUpdateTime;
    /**
     * 删除标识
     */
    @ApiModelProperty(value="删除标识")
    @TableField(fill = FieldFill.INSERT)
    private String del;
    /**
     * 开始时间
     */
    @ApiModelProperty(value="开始时间")
    private String hotStandbyStaTime;
    /**
     * 结束时间
     */
    @ApiModelProperty(value="结束时间")
    private String hotStandbyEndTime;
    /**
     * 源名
     */
    @ApiModelProperty(value="源名")
    private String sourceName;
    /**
     * 源表count总条数
     */
    @ApiModelProperty(value="源表count总条数")
    private Long sourceCountNumber;
    /**
     * 目标表count总条数
     */
    @ApiModelProperty(value="目标表count总条数")
    private Long targetCountNumber;
    /**
     * 重跑状态（重跑中、重跑失败、重跑成功）
     */
    @ApiModelProperty(value="重跑状态（重跑中、重跑失败、重跑成功）")
    private String rerunState;

    /**
     * 日志对象
     */
    @TableField(exist = false)
    private FileAppender heatLog;
    /**
     * uat库名
     */
    @TableField(exist = false)
    private String uatDbName;
    /**
     * 库名
     */
    @TableField(exist = false)
    private String dbName;
    /**
     * 表名
     */
    @TableField(exist = false)
    private String tbName;

}
